import org.antlr.runtime.ANTLRStringStream;
import org.antlr.runtime.CommonTokenStream;

import java.io.FileReader;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;


public class GeneraHTML {
	public static void main(String[] args) throws Exception {
	
	//Creamos un String que va a contener todo el texto del archivo
	 String htmlEntrada="";
	
	 try
	 {
		 //Creamos un archivo FileReader que obtiene lo que tenga el archivo
		 FileReader lector=new FileReader("C:\\Users\\Bruno\\workspace\\texto.html");
		 
		 //El contenido de lector se guarda en un BufferedReader
		 BufferedReader contenido = new BufferedReader(lector);
		
		//Con el siguiente ciclo extraemos todo el contenido del objeto "contenido" y lo mostramos
		 String tex = ""; 
		 tex = contenido.readLine();
		 while(tex != null)
		 {
			htmlEntrada += tex; 
			tex = contenido.readLine();
	 }
	 
		 contenido.close();
		 
	 }		 
	 
	 //Si se causa un error al leer cae aqui
	 catch(Exception e)
	 {
		 System.out.println("Error al leer");
	 }		 
	 	 
	 System.out.println(htmlEntrada);
	 
	// Parseamos el archivo
	ANTLRStringStream in = new ANTLRStringStream(htmlEntrada);
	HTMLLexer lexer = new HTMLLexer(in);
	CommonTokenStream tokens = new CommonTokenStream(lexer);
	HTMLParser parser = new HTMLParser(tokens);
	String HTMLSalida = parser.doc().value;
	
	//Generamos .html de salida con HTMLSalida
	
	try
	{
		//Crear un objeto File se encarga de crear o abrir acceso a un archivo que se especifica en su constructor
		File archivo = new File("C:\\Users\\Bruno\\workspace\\TP-TLeng.html");
		
		//Crear objeto FileWriter que sera el que nos ayude a escribir sobre archivo
		FileWriter escribir = new FileWriter(archivo);
		
		//Escribimos en el archivo con el metodo write 
		escribir.write(HTMLSalida);
		
		//Cerramos la conexion
		escribir.close();
		}
		
	//Si existe un problema al escribir cae aqui
	catch(Exception e)
	{
		System.out.println("Error al escribir");
	}
	
	}
}        
        
        
        
        
